High-Level Data Races

نویسندگان

  • Cyrille Artho
  • Klaus Havelund
  • Armin Biere
چکیده

Data races are a common problem in concurrent programming. Experience shows that the notion of data race is not powerful enough to capture certain types of inconsistencies occurring in practice. In this paper we investigate data races on a higher abstraction layer. This enables us to detect inconsistent uses of shared variables, even if no classical race condition occurs. For example, a data structure representing a coordinate pair may have to be treated atomically. By lifting the meaning of a data race to a higher level, such problems can now be covered. The paper defines the concepts view and view consistency to give a notation for this novel kind of property. It describes what kinds of errors can be detected with this new definition, and where its limitations are. It also gives a formal guideline for using data structures in a multi-threaded environment.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Dynamic Detection and Healing of Low Level Data Races

Data races are a common problem in concurrent programming. This article describes a tool which is able to detect low level data races in Java programs and heal them – all at run-time. This tool is build on top of IBM ConTest, a concurrency testing software. The tool uses a modification of the Eraser algorithm to detect data races and implements two techniques of data race healing.

متن کامل

Thinking Beyond Race Conditions

Multi-threaded parallel programs perform accesses to shared variables, which require application of a synchronization strategy. Absence of synchronization among threads may lead to error situations, such as data races. Data races, which involve concurrent accesses to a single shared variable, are categorized as low-level. Synchronization strategies to alleviate lowlevel data races do not guaran...

متن کامل

Permission Regions for Race-Free Parallelism

It is difficult to write parallel programs that are correct. This is because of the potential for data races, when parallel tasks access shared data in complex and unexpected ways. A classic approach to addressing this problem is dynamic race detection, which has the benefits of working transparently to the programmer and not raising any false alarms. Unfortunately, dynamic race detection is ve...

متن کامل

How to Miscompile Programs with "Benign" Data Races

Several prior research contributions [15, 9] have explored the problem of distinguishing “benign” and harmful data races to make it easier for programmers to focus on a subset of the output from a data race detector. Here we argue that, although such a distinction makes sense at the machine code level, it does not make sense at the C or C++ source code level. In one sense, this is obvious: The ...

متن کامل

Effective Data-Race Detection for the Kernel

Data races are an important class of concurrency errors where two threads erroneously access a shared memory location without appropriate synchronization. This paper presents DataCollider, a lightweight and effective technique for dynamically detecting data races in kernel modules. Unlike existing data-race detection techniques, DataCollider is oblivious to the synchronization protocols (such a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2003